#ifndef __RELAY_H
#define __RELAY_H

#include "sysconfig.h"

#define BEEP_ON  GPIO_WriteHigh(GPIOH, GPIO_PIN_2)//BEEP
#define BEEP_OFF GPIO_WriteLow(GPIOH, GPIO_PIN_2)

#define FAIL_LED_ON  GPIO_WriteHigh(GPIOH, GPIO_PIN_3)//FAIL LED
#define FAIL_LED_OFF GPIO_WriteLow(GPIOH, GPIO_PIN_3)

#define PASS_LED_ON  GPIO_WriteHigh(GPIOH, GPIO_PIN_4)//PASS LED
#define PASS_LED_OFF GPIO_WriteLow(GPIOH, GPIO_PIN_4)

#define Relay1_ON  GPIO_WriteHigh(GPIOB, GPIO_PIN_0)//Relay1
#define Relay1_OFF GPIO_WriteLow(GPIOB, GPIO_PIN_0)

#define Relay2_ON  GPIO_WriteHigh(GPIOB, GPIO_PIN_1)//Relay2
#define Relay2_OFF GPIO_WriteLow(GPIOB, GPIO_PIN_1)

#define Relay3_ON  GPIO_WriteHigh(GPIOB, GPIO_PIN_2)//Relay3
#define Relay3_OFF GPIO_WriteLow(GPIOB, GPIO_PIN_2)

#define Relay4_ON  GPIO_WriteHigh(GPIOB, GPIO_PIN_3)//Relay4
#define Relay4_OFF GPIO_WriteLow(GPIOB, GPIO_PIN_3)

#define Relay5_ON  GPIO_WriteHigh(GPIOB, GPIO_PIN_4)//Relay5
#define Relay5_OFF GPIO_WriteLow(GPIOB, GPIO_PIN_4)

#define Relay6_ON  GPIO_WriteHigh(GPIOB, GPIO_PIN_5)//Relay6
#define Relay6_OFF GPIO_WriteLow(GPIOB, GPIO_PIN_5)

#define Relay7_ON  GPIO_WriteHigh(GPIOB, GPIO_PIN_6)//Relay7
#define Relay7_OFF GPIO_WriteLow(GPIOB, GPIO_PIN_6)

#define Relay8_ON  GPIO_WriteHigh(GPIOB, GPIO_PIN_7)//Relay8
#define Relay8_OFF GPIO_WriteLow(GPIOB, GPIO_PIN_7)

#define Relay9_ON  GPIO_WriteHigh(GPIOG, GPIO_PIN_4)//Relay9
#define Relay9_OFF GPIO_WriteLow(GPIOG, GPIO_PIN_4)

#define Relay10_ON  GPIO_WriteHigh(GPIOG, GPIO_PIN_3)//Relay10
#define Relay10_OFF GPIO_WriteLow(GPIOG, GPIO_PIN_3)

#define Relay11_ON  GPIO_WriteHigh(GPIOG, GPIO_PIN_2)//Relay11
#define Relay11_OFF GPIO_WriteLow(GPIOG, GPIO_PIN_2)

#define Relay12_ON  GPIO_WriteHigh(GPIOG, GPIO_PIN_1)//Relay12
#define Relay12_OFF GPIO_WriteLow(GPIOG, GPIO_PIN_1)

#define Relay13_ON  GPIO_WriteHigh(GPIOG, GPIO_PIN_0)//Relay13
#define Relay13_OFF GPIO_WriteLow(GPIOG, GPIO_PIN_0)

#define Relay14_ON  GPIO_WriteHigh(GPIOH, GPIO_PIN_7)//Relay14
#define Relay14_OFF GPIO_WriteLow(GPIOH, GPIO_PIN_7)

#define Relay15_ON  GPIO_WriteHigh(GPIOH, GPIO_PIN_6)//Relay15
#define Relay15_OFF GPIO_WriteLow(GPIOH, GPIO_PIN_6)

#define Relay16_ON  GPIO_WriteHigh(GPIOH, GPIO_PIN_5)//Relay16
#define Relay16_OFF GPIO_WriteLow(GPIOH, GPIO_PIN_5)

#define Relay17_ON  GPIO_WriteHigh(GPIOF, GPIO_PIN_0)//Relay17
#define Relay17_OFF GPIO_WriteLow(GPIOF, GPIO_PIN_0)

#define Relay18_ON  GPIO_WriteHigh(GPIOF, GPIO_PIN_3)//Relay18
#define Relay18_OFF GPIO_WriteLow(GPIOF, GPIO_PIN_3)

#define Relay19_ON  GPIO_WriteHigh(GPIOC, GPIO_PIN_0)//Relay19
#define Relay19_OFF GPIO_WriteLow(GPIOC, GPIO_PIN_0)

#define Relay20_ON  GPIO_WriteHigh(GPIOC, GPIO_PIN_1)//Relay20
#define Relay20_OFF GPIO_WriteLow(GPIOC, GPIO_PIN_1)

#define Relay21_ON  GPIO_WriteHigh(GPIOC, GPIO_PIN_2)//Relay21
#define Relay21_OFF GPIO_WriteLow(GPIOC, GPIO_PIN_2)

#define Relay22_ON  GPIO_WriteHigh(GPIOC, GPIO_PIN_3)//Relay22
#define Relay22_OFF GPIO_WriteLow(GPIOC, GPIO_PIN_3)

#define Relay23_ON  GPIO_WriteHigh(GPIOC, GPIO_PIN_4)//Relay23
#define Relay23_OFF GPIO_WriteLow(GPIOC, GPIO_PIN_4)

#define Relay24_ON  GPIO_WriteHigh(GPIOD, GPIO_PIN_0)//Relay24
#define Relay24_OFF GPIO_WriteLow(GPIOD, GPIO_PIN_0)

#define AC_POWER_ON  GPIO_WriteHigh(GPIOC, GPIO_PIN_5)//AC_POWER
#define AC_POWER_OFF GPIO_WriteLow(GPIOC, GPIO_PIN_5)

void GPIO_IO_init(void);

#endif